Tengo un marco de datos similar al que se muestra a continuación y me gustaría crear una nueva variable que contenga verdadero/falso si para cada proyecto se ha cubierto el sector "a" al menos una vez. Estoy intentando con la función group.by() y quería usar el método .transform() pero como mis datos son texto, no sé cómo usarlos.
project sector 01 a 01 b 02 b 02 b 03 a 03 a project sector new_col 01 a true 01 b true 02 b false 02 b false 03 a true 03 a trueNo es la opción más rápida, pero definitivamente debería funcionar.
new_col = your_db.groupby(['project'])['sector'].unique().apply(lambda x: 'a' in x).rename('new_col') your_db = your_db.merge(new_col, how = 'inner', left_on = 'project', right_on = 'project')Podrías intentar lo siguiente:
df['new_col'] = df.groupby('project')['sector'].transform(lambda x: (x == 'a').any() )Esto agrupará por proyecto y verificará si hay alguna 'a' en los sectores de grupos